JBInsTrace: A tracer of Java and JRE classes at basic-block granularity by dynamically instrumenting bytecode

نویسندگان

  • Pierre Caserta
  • Olivier Zendra
چکیده

Understanding what happens during the runtime of a Java program is difficult. Tracking runtime flow can bring valuable information for program understanding and behavior analysis. Polymorphism, thread concurrency or even simple facts like the number of method invocations and the number of executed bytecodes are valuable information to track, but are difficult to compute outside the Java Virtual Machine (JVM) on running programs. In this paper, we present JBInsTrace, a new tool that instruments and traces Java bytecode. It produces static information about source code and a very fine grained trace of Java software execution, combining them to allow detailed analysis of the runtime. Our tool differs from others because it does not only trace program classes but also JRE classes, and does so at basic block level, without altering the JVM and without statically modifying class files. We explain JBInsTrace design, focused towards efficiency, which results in reasonable performance penalty.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

BIT: A Tool for Instrumenting Java Bytecodes

BIT (Bytecode Instrumenting Tool) is a collection of Java classes that allow one to build customized tools to instrument Java Virtual Machine (JVM) bytecodes. Because understanding program behavior is an essential part of developing effective optimization algorithms, researchers and software developers have built numerous tools that carry out program analysis. Although there are existing tools ...

متن کامل

Bytecode Instrumentation as an Aid in Understanding the Behavior of Java Persistent Stores

In this paper, we describe the use of BIT (Bytecode Instrumenting Tool) as an aid in understanding the behavior of persistent Java programs and evaluating the implementation of Java persistent stores. BIT is a set of Java classes that allow a user to build customized tools to instrument Java Virtual Machine (JVM) bytecodes. We built a customized tool using BIT to instrument Object Design Inc.’s...

متن کامل

ProfBuilder: A Package for Rapidly Building Java Execution Profilers

ProfBuilder is a collection of Java classes that provide an easy method for constructing Java execution profiling tools. By instrumenting Java bytecode, a programmer can measure dynamic properties of an application, such as bytecode count, number of memory allocations, cache misses and branches. ProfBuilder provides an easy way to create customized tools to measure these and other properties by...

متن کامل

Model-Based Schedulability Analysis of Real-Time Systems

BasicBlock SimpleBasicBlock BranchingBasicBlock EmptyBasicBlock IfBasicBlock LoopBasicBlock MethodCallingBasicBlock MonitorEnterBasicBlock MonitorExitBasicBlock SporadicInvokeBasicBlock Figure 9.3: Basic block hierarchy AbstractBasicBlock has a WCET attribute, denoting the execution time of the Java bytecode the block represents. This is used in the schedu-BasicBlock has a WCET attribute, denot...

متن کامل

ByCounter: Portable Runtime Counting of Bytecode Instructions and Method Invocations

For bytecode-based applications, runtime instruction counts can be used as a platform-independent application execution metric, and also can serve as the basis for bytecode-based performance prediction. However, different instruction types have different execution durations, so they must be counted separately, and method invocations should be identified and counted because of their substantial ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Sci. Comput. Program.

دوره 79  شماره 

صفحات  -

تاریخ انتشار 2014